home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Utilities / MathScript / MSExtras / QuickCode / QC / QuickCode.gc < prev    next >
Encoding:
MathScript QuickCode script  |  1997-02-09  |  6.7 KB  |  263 lines

  1. G4C
  2.  
  3. ;
  4. ; QuickCode V1.6
  5. ;
  6. ; A Mathscript Icon Bar, allowing rapid access to your 10 most
  7. ; used formula elements.
  8. ;
  9. ; This is the GUI4CLI layer for QuickCode.rexx.  Make sure
  10. ; QuickCode.rexx and QC_Prefs.gc are in the Mathscript:Rexx/QC dir!
  11. ;
  12. ; Chris Coulson
  13. ;
  14. ; History:
  15. ;
  16. ; 28.12.96
  17. ; 31.12.96 - First batch of icons done
  18. ; 05.01.97 - Changed env-var format
  19. ; 08.01.97 - Prefs editor now sets icon bar
  20. ; 09.01.97 - Version 1.0
  21. ;            Changed env-var format again, it's half the size!
  22. ; 12.01.97 - Now opens on whatever pubscreen the Gui was last 
  23. ;            jumped onto.
  24. ; 13.01.97 - Version 1.1
  25. ;            Version number bumped to correspond with QuickCode.rexx
  26. ; 14.01.97 - Project...Quit now does what it says :-)
  27. ; 17.01.97 - Wierd bug reported by Simon Ihmig.  I've only managed to replicate
  28. ;            it once, and I can't figure out why it happened...  So I've added
  29. ;            what seems to be the only possible fix, given the nature of the bug.
  30. ;            Clear button now works again...
  31. ; 18.01.97 - Version 1.2
  32. ;            Added the MxN matrix
  33. ; 21.01.97 - Version 1.3
  34. ;            Added new codes from Mathscript 3.1
  35. ; 25.01.97 - Version 1.4
  36. ;            I think I've fixed the other wierd bug Simon reported...
  37. ;            Following advice from Dimitris, I've renamed most of the variables, so
  38. ;            that they're all hopefully unique to QuickCode, and I've also removed 
  39. ;            the Quit command on closing the GUI.  These changes should allow
  40. ;            Quickcode to run happily on a system that's running other Guis.
  41. ; 28.01.97 - Version 1.5
  42. ;            Now I REALLY think I've fixed that bug of Simon's...
  43. ; 09.02.97 - Version 1.6
  44. ;            Removed all the absolute file paths, allowing the QC directory to be
  45. ;            placed anywhere.
  46. ;            Will now remove Gui4CLI on exit, if the user permits it.
  47. ;            Cleared up some little bugs in the screen jumping code.
  48. ;
  49.  
  50. WinBig 0 0 200 17 "QuickCode 1.6"
  51. WinType 11010000
  52.  
  53. NoFontSense
  54.  
  55. xOnLoad
  56.     GuiLoad :qc_prefs.gc
  57.     GuiLoad :qc_getmxn.gc
  58.     IfExists FILE "env:.qcprefs"
  59.     Else
  60.         DelVar .qcprefs
  61.         SetVar .qcprefs "lank "
  62.         AppVar .qcprefs "lank "
  63.         AppVar .qcprefs "lank "
  64.         AppVar .qcprefs "lank "
  65.         AppVar .qcprefs "lank "
  66.         AppVar .qcprefs "lank "
  67.         AppVar .qcprefs "lank "
  68.         AppVar .qcprefs "lank "
  69.         AppVar .qcprefs "lank "
  70.         AppVar .qcprefs "lank "
  71.         AppVar .qcprefs "Workbench "
  72.         AppVar .qcprefs "0 "
  73.         Copy "env:.qcprefs" "envarc:"
  74.     EndIf
  75.     SetVar qc_rawprefs $.qcprefs
  76.     CutVar qc_rawprefs Cut Word 1 qcicon0
  77.     CutVar qc_rawprefs Cut Word 1 qcicon1
  78.     CutVar qcicon1 Cut Char 1 qc_dummy
  79.     CutVar qc_rawprefs Cut Word 1 qcicon2
  80.     CutVar qcicon2 Cut Char 1 qc_dummy
  81.     CutVar qc_rawprefs Cut Word 1 qcicon3
  82.     CutVar qcicon3 Cut Char 1 qc_dummy
  83.     CutVar qc_rawprefs Cut Word 1 qcicon4
  84.     CutVar qcicon4 Cut Char 1 qc_dummy
  85.     CutVar qc_rawprefs Cut Word 1 qcicon5
  86.     CutVar qcicon5 Cut Char 1 qc_dummy
  87.     CutVar qc_rawprefs Cut Word 1 qcicon6
  88.     CutVar qcicon6 Cut Char 1 qc_dummy
  89.     CutVar qc_rawprefs Cut Word 1 qcicon7
  90.     CutVar qcicon7 Cut Char 1 qc_dummy
  91.     CutVar qc_rawprefs Cut Word 1 qcicon8
  92.     CutVar qcicon8 Cut Char 1 qc_dummy
  93.     CutVar qc_rawprefs Cut Word 1 qcicon9
  94.     CutVar qcicon9 Cut Char 1 qc_dummy
  95.     CutVar qc_rawprefs Cut Word 1 qc_screen
  96.     CutVar qc_screen Cut Char 1 qc_dummy
  97.     
  98.     SetScreen quickcode.gc $qc_screen
  99.     SetScreen qc_prefs.gc $qc_screen
  100.     SetScreen qc_getmxn.qc $qc_screen
  101.     
  102.     CutVar qc_rawprefs Cut Word 1 qc_guiquit
  103.     CutVar qc_guiquit Cut Char 1 qc_dummy
  104.     
  105.     Extract QuickCode.gc GuiPath qc_path
  106.     SetVar qc_rexxprog $qc_path
  107.     AppVar qc_rexxprog "/QuickCode.rexx"
  108.     GuiOpen QuickCode.gc
  109.     GoSub quickcode.gc changebuttons
  110.     Run 'rx $qc_rexxprog'
  111.     Wait PORT quickcode 100
  112.  
  113. ; Global inits for QC_Prefs
  114.     
  115.     SetVar qcp_Bank 1
  116.     SetVar qcp_Button 1
  117.     SetVar qcp_Cmd "lank"
  118.     
  119.     
  120. xOnClose
  121.     SendRexx quickcode "EXIT"
  122.     GuiQuit QuickCode.gc
  123.     GuiQuit QC_Prefs.gc
  124.     GuiQuit QC_GetMxN.gc
  125.     IF $qc_guiquit = 1
  126.         Quit
  127.     ENDIF
  128.  
  129.     
  130. xOnJump qc_screen
  131.     SetScreen qc_prefs.gc $qc_screen
  132.     SetScreen qc_getmxn.gc $qc_screen
  133.     SetVar .qcprefs "$qcicon0 "
  134.     AppVar .qcprefs "$qcicon1 "
  135.     AppVar .qcprefs "$qcicon2 "
  136.     AppVar .qcprefs "$qcicon3 "
  137.     AppVar .qcprefs "$qcicon4 "
  138.     AppVar .qcprefs "$qcicon5 "
  139.     AppVar .qcprefs "$qcicon6 "
  140.     AppVar .qcprefs "$qcicon7 "
  141.     AppVar .qcprefs "$qcicon8 "
  142.     AppVar .qcprefs "$qcicon9 "
  143.     AppVar .qcprefs "$qc_screen "
  144.     AppVar .qcprefs "$qc_guiquit "
  145.     Copy "env:.qcprefs" "envarc:"
  146.  
  147.  
  148. ; Menu definitions
  149.  
  150. xMenu Project About "" ""
  151.     EzReq "QuickCode 1.6 (9th Feb 1997)\n\nby Chris Coulson\n(c.j.coulson@ncl.ac.uk)\n\nUsing Gui4CLI v2.2" "OK" Dummy
  152. xMenu Project Barlabel "" ""
  153. xMenu Project Quit "" "Q"
  154.     GuiClose quickcode.gc
  155.  
  156. xMenu Settings Change "" "C"
  157.     GuiOpen qc_prefs.gc
  158.  
  159.     
  160.     
  161. ; QuickCode buttons
  162. ;
  163. ; Note: xIcons MUST be first setup with an actual filename rather than a variable
  164. ; containing the filename - I suspect Gui4CLI tries to setup the icons before it
  165. ; sets up the variables.  If the xIcon gadget is not initialised correctly, any
  166. ; attempt to ChangeIcon it at a later stage will fail.
  167.      
  168. xIcon 0 0 ":icons/blank"
  169.     GadID 1
  170.     IF "$qcicon0" = "14/13"
  171.         GuiOpen qc_getmxn.gc
  172.     ELSE
  173.         SendRexx quickcode "B0"
  174.     ENDIF
  175. xIcon 16 0 ":icons/blank"
  176.     GadID 2
  177.     IF "$qcicon1" = "14/13"
  178.         GuiOpen qc_getmxn.gc
  179.     ELSE
  180.         SendRexx quickcode "B1"
  181.     ENDIF
  182. xIcon 32 0 ":icons/blank"
  183.     GadID 3
  184.     IF "$qcicon2" = "14/13"
  185.         GuiOpen qc_getmxn.gc
  186.     ELSE
  187.         SendRexx quickcode "B2"
  188.     ENDIF
  189. xIcon 48 0 ":icons/blank"
  190.     GadID 4
  191.     IF "$qcicon3" = "14/13"
  192.         GuiOpen qc_getmxn.gc
  193.     ELSE
  194.         SendRexx quickcode "B3"
  195.     ENDIF
  196. xIcon 64 0 ":icons/blank"
  197.     GadID 5
  198.     IF "$qcicon4" = "14/13"
  199.         GuiOpen qc_getmxn.gc
  200.     ELSE
  201.         SendRexx quickcode "B4"
  202.     ENDIF
  203. xIcon 80 0 ":icons/blank"
  204.     GadID 6
  205.     IF "$qcicon5" = "14/13"
  206.         GuiOpen qc_getmxn.gc
  207.     ELSE
  208.         SendRexx quickcode "B5"
  209.     ENDIF
  210. xIcon 96 0 ":icons/blank"
  211.     GadID 7
  212.     IF "$qcicon6" = "14/13"
  213.         GuiOpen qc_getmxn.gc
  214.     ELSE
  215.         SendRexx quickcode "B6"
  216.     ENDIF
  217. xIcon 112 0 ":icons/blank"
  218.     GadID 8
  219.     IF "$qcicon7" = "14/13"
  220.         GuiOpen qc_getmxn.gc
  221.     ELSE
  222.         SendRexx quickcode "B7"
  223.     ENDIF
  224. xIcon 128 0 ":icons/blank"
  225.     GadID 9
  226.     IF "$qcicon8" = "14/13"
  227.         GuiOpen qc_getmxn.gc
  228.     ELSE
  229.         SendRexx quickcode "B8"
  230.     ENDIF
  231. xIcon 144 0 ":icons/blank"
  232.     GadID 10
  233.     IF "$qcicon9" = "14/13"
  234.         GuiOpen qc_getmxn.gc
  235.     ELSE
  236.         SendRexx quickcode "B9"
  237.     ENDIF
  238.     
  239. xButton 161 0 40 17 "CLR"
  240.     SendRexx quickcode "BCLR"
  241.     
  242.     
  243. ; Subroutines
  244.  
  245. xRoutine ChangeButtons
  246.     ChangeIcon QuickCode.gc 1 -1 -1 ":icons/b$qcicon0"
  247.     ChangeIcon QuickCode.gc 2 -1 -1 ":icons/b$qcicon1"
  248.     ChangeIcon QuickCode.gc 3 -1 -1 ":icons/b$qcicon2"
  249.     ChangeIcon QuickCode.gc 4 -1 -1 ":icons/b$qcicon3"
  250.     ChangeIcon QuickCode.gc 5 -1 -1 ":icons/b$qcicon4"
  251.     ChangeIcon QuickCode.gc 6 -1 -1 ":icons/b$qcicon5"
  252.     ChangeIcon QuickCode.gc 7 -1 -1 ":icons/b$qcicon6"
  253.     ChangeIcon QuickCode.gc 8 -1 -1 ":icons/b$qcicon7"
  254.     ChangeIcon QuickCode.gc 9 -1 -1 ":icons/b$qcicon8"
  255.     ChangeIcon QuickCode.gc 10 -1 -1 ":icons/b$qcicon9"
  256.     Redraw quickcode.gc
  257.  
  258.  
  259.  
  260.     
  261.  
  262.  
  263.